function setCookie(key, val, time) {
    var date = new Date(); //获取当前时间
    if (time == '' || time == undefined || time == null) { //time为空
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + 365);
        document.cookie = key + "=" + val + "; path=/"; //设置cookie
    } else { //设置cookie留存时间
        var expiresDays = time; //将date设置为n天以后的时间
        date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000); //格式化为cookie识别的时间
        document.cookie = key + "=" + val + ";expires=" + date.toGMTString() + ";path=/";
    }
}
//删除cookie的值
function delCookie(key) {
    setCookie(key, '', -10);
}

//获取cookie的值
function getCookie(key) {
    /*获取cookie参数*/
    var getCookie = document.cookie.replace(/[ ]/g, ""); //获取cookie，并且将获得的cookie格式化，去掉空格字符
    var arrCookie = getCookie.split(";") //将获得的cookie以"分号"为标识 将cookie保存到arrCookie的数组中
    var tips; //声明变量tips
    for (var i = 0; i < arrCookie.length; i++) { //使用for循环查找cookie中的tips变量
        var arr = arrCookie[i].split("="); //将单条cookie用"等号"为标识，将单条cookie保存为arr数组
        if (key == arr[0]) { //匹配变量名称，其中arr[0]是指的cookie名称，如果该条变量为tips则执行判断语句中的赋值操作
            tips = arr[1]; //将cookie的值赋给变量tips
            break; //终止for循环遍历
        }
    }
    return tips;
}

/*
  * 四舍五入的收益率格式化,输出字符串类型
  * orig 需要格式化的数值
  * reserve 保留位数 默认2
  * isRound 是否四舍五入 默认 true
  * unit 单位 默认无
  * def 默认值数字异常时返回 默认'--'
  * 如  decimalFormat('0.4477',3,false,'%','--') => 0.447%
  * 如  decimalFormat('0.4477',2) => 0.45%
  */
function decimalFormat(orig, reserve, isRound, unit, def) {
    var _num, _orig;
    var _isRound = isRound == false ? false : true;
    var _reserve = reserve ? reserve : 2;
    var _unit = unit || '';
    if (orig && (orig + '').substr(-1) == '%') {
        orig = (orig + '').substr(0, (orig + '').length - 1);
        if (_unit == '') {
            _unit = '%';
        }
    }
    var _p = orig >= 0 ? 1 : -1;
    if (orig === undefined || isNaN(orig) || orig === '' || orig === null || orig == '--') {
        return _num = def || '--';
    } else {
        _orig = Math.abs(parseFloat(orig));
    }
    if (isRound != undefined) {
        _num = roundNum(_orig, _reserve, isRound);
    } else {
        _num = _orig
    }
    _num = (_num * _p).toFixed(_reserve) + _unit;


    return _num;
}
function roundNum(orig, reserve, isRound) {
    var a = 1
    if (reserve == 2) {
        a = 100
    }
    if (reserve == 4) {
        a = 10000
    }
    if (isRound) {
        return (Math.round(orig * a) / a).toFixed(reserve)
    } else {
        return (Math.floor(orig * a) / a).toFixed(reserve)
    }
}
export function jsonToTree (data) {
  if (!Array.isArray(data)) {
    return result
  }
  // 1. result为一个新的大厅，来存放已经组好队的家庭
  let result = []
  // 2.使用map，将当前对象的id与当前对象对应存储起来
  // PS:相当于我们在大厅喊话，只用一次就可以找到父亲，也就是O(1)
  let map = {}
  data.forEach(item => {
    map[item.id] = item
  })
  // 3.询问每一个人，它的父亲是谁
  data.forEach(item => {
    let parent = map[item.parentid]
    // console.log('打印的parent', parent)
    // 如果有父亲，就把父亲喊出来，把孩子交给父亲
    if (parent) {
      (parent.children || (parent.children = [])).push(item)
    } else {
    // 如果没有父亲,说明这个人就是父亲,直接把他带到排好序的大厅
      result.push(item)
    }
  })
  // 新的大厅为已经排好的家庭
  return result
}


export default {
    getCookie, delCookie, setCookie, decimalFormat,
}